//第21课 导入常见报错解决办法（unknow pin及绿色报错等） https://www.bilibili.com/video/BV16t411N7RD?p=21
1.将原理图 生成 PCB图
  1.1. 打开原理图.SchDoc -> 设计 -> Update PCB Document xxx.PcbDoc -> 工程变更指令:
    Add Components(xx)         //添加元器件
    ☑Add Nets                   //添加网络(线路)
    ☑Add Component Classes(xx)  //添加器件Class
    □ Add Rooms(xx)              //添加原理图的Room
    -> 执行变更 -> 右侧会有"检测&完成"状态 -> ☑仅显示错误 -> 报告变更(R) -> 导出Excel/Pdf/jpg/html... -> 关闭(已生成PCB)
    //报错: 未找到"LM1"的封装: LM1    Footprint Not Found PCBCompone
      打开原理图 -> 找到元件 -> 双击"LM1" -> 右侧"Properties"底部查看, 确实没有封装 ->
      -> 查找芯片文档("LM2940CS-12_datasheet.pdf")里的封装类型="6种封装" -> 选取3个脚的那种封装("例SOT-223") -> 确定 -> 重新更新PCB

  1.2. 或者: 打开xxx.PcbDoc -> Import Changes From Xxx.PrjPcb


//将原理图导入到PCB, 常见报错问题: unknow pin
  1、没有封装       (需要再原理图属性添加封装)
  2、封装管脚缺失   (原理图6个脚, 封装5个脚, 数量没对应上)
  3、管脚号不配 B 1 (原理图管脚BCE, PCB封装管脚123)



/**
 * 第22课 常见"绿色报错"的消除(应先完成摆放, 再解决这些错误) https://www.bilibili.com/video/BV16t411N7RD?p=22
 * 更新到PCB板后 -> .PcbDoc 里很多元件是绿色的(比这个注释颜色还绿,亮绿) -> 原因: 丝印/阻焊 "间距<10mil"
 * 更多"绿色报错"问题: https://www.fanyedu.com/course/168.html
 */
解决方法: 1. T + M: 复位错误标志 (不是很推荐,拖动的时候有可能还会出现错误 )
解决方法: 2. T + D + R -> "运行 DRC(R)"查看错误报告 -> 会弹出 Messages
            //将 Messages 拉到"顶部", 方便查看错误信息详情.
            //双击里面的错误信息, 会跳转  ->  在Message按↑↓键+Enter=快速切换跳转错误信息(好用)(但鼠标会乱跳, 很智障)
            报错1: Design contains shelved or modified(but not repoured) polygons.    //设计包含搁置的或修改过的（但未重新绘制）多边形。
                   The result of DRC will not be correct.                             //DRC的结果将不正确。
                   Would you like to continue?                                        //你想继续吗？
                   Note: Recommended to stop DRC and restore/repour all polygons before proceeding with DRC.//注意：建议在进行DRC之前停止DRC并恢复/重新填充所有多边形。
                   //问题: 没铺铜 or 修改了铜皮但没铺铜, 解决方法:
                   1.选中"Top Layer"&"Bottom Layer" -> M -> 通过X,Y移动选中对象 -> Y偏移量=300mm //先将大的2块铜皮移开
                   2.T,G,A -> 所有铺铜重铺        //保证了小铜皮也全部铺铜
                   3.再将2个大铜皮移回来 -> 右击大铜皮 -> T,G,R -> 重铺选中的铺铜
                   4.再次 DRC
            报错2://其余'绿色报错'
                DRC 报告, Rule Violations:		500(个错误), (违反规则): 下方列表会列出错误, 点击错误能跳转:   //会在项目目录下生成"Project Outputs for ProjectName/Design Rule Check - PCB1.html"
                // Clearance Constraint (Gap=10mil) (All),(All)	                    //间隙约束(设置的10mil), 违背了2个All(☑)规则
                // Short-Circuit Constraint (Allowed=No) (All),(All)	                //短路约束([/ˈsɜːkɪt] n.路线,线路,电路)
                // Un-Routed Net Constraint ( (All) )	                                //未路由网络约束 (没连上)
                // Modified Polygon (Allow modified: No), (Allow shelved: No)	        //修改的多边形   (有可编辑的铜皮, 解决办法见 "报错1")
                // Width Constraint (Min=10mil) (Max=10mil) (Preferred=10mil) (All)    //宽度约束
                // Width Constraint (Min=12mil) (Max=60mil) (Preferred=12mil) (InNetClass('pow'))          //电源宽度,最小12mil, 最大60mil (添加的自定义规则)
                // Width Constraint (Min=6) (Max=6mil) (Preferred=6mil) (InNetClass('All Nets'))           //其余Net宽度                   (添加的自定义规则)
                // Power Plane Connect Rule(Relief Connect )(Expansion=20mil) (Conductor Width=10mil) (Air Gap=10mil) (Entries=4) (All)    //电源平面连接规则 (铜皮连接方式)(连接方式=Relief Connect(泄压接头)(十字连接),  Expansion(外扩)=20mil,  Conductor Width(导体宽度)=10mil,  Air Gap(空气间隙)=10mil,  Entries(导体)=4 )
                // Hole Size Constraint (Min=1mil) (Max=100mil) (All)	                //孔大小约束
                // Hole To Hole Clearance (Gap=10mil) (All),(All)	                    //孔到孔的间隙
                // Minimum Solder Mask Sliver (Gap=10mil) (All),(All)	                //最小焊料掩模狭缝 (阻焊-阻焊的间距)     (Solder n.锡膏;焊料;焊接;软焊   Sliver n.薄片,小块)
                // Silk To Solder Mask (Clearance=10mil) (IsPad),(All)	                //丝绸-焊料掩模    (丝印-阻焊的间距)     (Silk n.(蚕)丝;丝织物，丝绸，丝线)
                // Silk to Silk (Clearance=10mil) (All),(All)	                        //丝印-丝印间距 (防重叠,R1重叠了可能看不清)
                // Net Antennae (Tolerance=0mil) (All)	                                //网络天线      (焊盘的线头,会收发电磁波) (Antennae [/ænˈtɛniː] n.天线,高塔,触角,触须)
                // Height Constraint (Min=0mil) (Max=1000mil) (Prefered=500mil) (All)  //高度约束      (某个区域的高度, 默认All.  .PcbLib 里可设置封装名称&高度)
            解决办法:
                1.具体参数见: "9.Class、设计参数、规则的创建.java"
                2.其余的间距自己修改
                3.重新铺铜





//白色圈圈: 短路 (移动元件的时候会出现, 视频05:30)
  双击元件 -> 查看封装 -> 跳到.PcbLib 找到这个封装 -> 查看左侧"PCB Library"里"Footprint Primitives"里有什么元素 ->
  如果都没问题 -> 跳到.PcbDoc -> 将元件的"Primitives"解锁,移动元素查看哪个元素引起的短路 -> 重新绘制1个一模一样的(太TM傻屌了...)





//快捷键
1         : 板子规划模式                    //视图(V) -> 板子规划模式1
2         : 切换到2维模式                   //视图(V) -> 切换到2维模式
3         : 切换到3维模式                   //视图(V) -> 切换到3维模式
Ctrl + D  : 2D/3D, 板子颜色, 图层显示隐藏...
L         : ↗
Ctrl + W  : 画'导线' ('空格'调整拐角方向)   //(不知道哪儿设置的, 特别智障)
选中1段 + Tab: 选中整条线                   //选中同1个网络的一条线
S     + N : ↗                              //选择(S) -> 网络(N)
J + C     : 在"原理图/PCB文件"中 查找元件   (编辑(E) -> 跳转(J) -> 器件(C) )
Ctrl + F  : 翻面 2D/3D
T + M     : 复位错误标志 (PCB 亮绿错误警告) (工具(T) -> M )
T + D     : 设计规则检查 (PCB 亮绿错误警告) (工具(T) -> D ), ☑创建报告文件.    还可重设"绿色报错"规则
            //Online（在线/自动）:如果PCB设计过程中存在DRC报错时, 可以在PCB实时的显示出来.
            //Batch（批量/手动） :只有手工执行DRC检查时，存在问题的报错才会显示出来。
            //一般需要检查DRC的时候两者都进行勾选，方便实时检查和手动检查同时进行。   DRC检查不是说所有的规则都需要检查，设计者只需要检查自己想需要检查的规则即可，不想检查的规则对应的“Online”和“Batch”勾取消掉就好了。

T + D + R : 运行DRC(R)
D + R     : PCB规则&约束编辑器[mil]         (设计(D) -> 规则(R) )
D + C     : 类(Class)                       (设计(D) -> 类(C) )

E + O + S : 重设原点                        (编辑(E) -> 原点(O) -> 设置(S) )
P + D + L : 放置尺寸(长宽标注)              (放置(P) -> 尺寸(D) -> 线性尺寸(L) ), (工具栏倒数第3个) //一般放置在'Mechanical 13'层 (不要和'边框'同一层.)
                            //按Tab -> Utils  ->  切换单位(Millimeters)  ->  Value Precision(小数点后几位)=2  ->  Format=xx.xxmm
                            //放置垂直尺寸的时候, 用 Space/(Shift+Space) 切换方向
Shift + 点选: 多选元素

//板子
D + S + D   : 重定义板子形状(黑色区域部分)         (设计(D) -> 板子形状(S) -> 按照选择对象定义(D) ) //需要先选框住元件的边框

M + S       : "点击"移动选中对象, 需要先"框选"元件 (编辑(M) -> 移动(M) -> 移动选中对象(S) )"(注意: 是框选, 不是点选...")
M + M       : 移动 (不用先"框选")                  (编辑(M) -> 移动(M) -> 移动(M) )
M + D       : 拖动 (不用先"框选")                  (编辑(M) -> 移动(M) -> 拖动(D) )
M + C       : 器件 (不用先"框选")                  (编辑(M) -> 移动(M) -> 器件(C) )
M + X       : 通过X,Y移动选中对象, 需要先"框选"元件(编辑(M) -> 移动(M) -> 通过X,Y移动选中对象(X) )

T + O + L   : 在矩形区域排列     (先 选中全部元件) (工具(T) -> 器件摆放(O) -> 在矩形区域排列(L) -> 划定矩形区域(可连续划定多次)选择适合的大小)
S + L       : (选择) 线接触到的对象 / 触线(线选)   (工具第4图标 -> 触线(L) )
/**
 * ★★★ 框选:
 * if 从右往左拖,只要接触元件就能选中.
 * if 从左往右拖, 要全框选才能选中.
 */
S + I       : (选择) 区域内部       / (框选)       (工具第4图标 -> 区域内部(I) )
U + U + C   : 删除整条线(不是一段一段的删)         (布线(U) -> 取消布线(U) -> 连接(C) )
U + I       : 交互式差分对布线(差分线)             (布线(U) -> 交互式差分对布线(I) )    (工具第7图标 -> 交互式差分对布线(I) )
//高亮:
Ctrl + H               : (选择)连接的元件/铜皮     (高亮'物理连接'的元件&线条 ) (选择(S) -> 连接的铜皮(P) ) (工具第4图标 -> 连接的铜皮(P) )
Ctrl + 点击            : (推荐)高亮元素&线条,      (点击铜皮无效) (Ctrl+点击空白=取消) (效果最好)
按住 "Shift" + 鼠标悬停: 高亮元素&线条,            (悬停铜皮无效) (松开自动取消高亮, 效果最差)

Shift + R   : (走线时)忽略障碍物
              //布线冲突方案(前3个就差不多了)    (设置 -> PCB Editor -> Interactive Routing -> 布线冲突方案)
                  ☑忽略障碍(G)
                  ☑推挤障碍(P)
                  ☑绕开障碍(W)
                  □ 在遇到第1个障碍时停止(S)
                  □/☑ 紧贴并推挤障碍(H)      //可选,可不选
                  □ 在当前层自动布线(A)
                  □ 多层自动布线(M)
                当前模式=Ignore Obstacles(忽略障碍) //手动布线时, 一般选这个.  默认=HugNPush Obstacles(拥抱障碍?)
N           : 显示/隐藏 连接,  显示/隐藏 跳线
Ctrl + Shift + X: 交叉选择模式(左侧原理图选择的元件, 右侧PCB中高亮) (工具(T) -> 交叉选择模式 )
T + C + 点击元件: 交叉探针(C). 点击后, 左侧原理图跳转对应元件.

//文本
定位器件文本: Ctrl + A全选 -> A -> 定位器件文本(P) -> 标识符 -> 选择器件文本的摆放位置   (工具栏第5图标->定位器件文本(P)) //器件的文本(U1, R1..)摆放位置
P + S       : 文字/汉字.  (工具栏倒数第2图标 -> 字符串(S) )    //放置(P) -> 字符串(S) -> Tab -> 输入文字 ->  Layer="Top Layer"(和丝印同一层)
              //if 是汉字: -> Font Type="TrueType"  -> Font="Consolas/宋体"
//过孔&焊盘
P + V       : 过孔    //有孔,                                                          比较小,               没有覆盖阻焊
P + P       : 焊盘    //有孔('Multi-Layer')(可插引脚) & '表贴焊盘'('Top Layer'等)单层, 孔径一般较大(可设置), 焊盘有阻焊层
T + H       : 缝合孔/屏蔽(H)      //用于多层相同网络的紧密连接
T + H + A   : 给网络添加缝合孔(A) //多个孔联合在一起(拖动会一起拖动)

//铺铜
P + G       : 铺铜            放置(P) -> 铺铜(G) (工具倒数第5图标 -> 铺铜(G) )
T + G + A   : 所有铺铜重铺  . (工具(T) -> 铺铜(G) -> 所有铺铜重铺(A) )
T + G + R   : 重铺选中的铺铜. (工具(T) -> 铺铜(G) -> 重铺选中的铺铜(R) )



//第24课 PCB快捷键的设置及推荐 https://www.bilibili.com/video/BV16t411N7RD/?p=24
//自定义快捷键:
//线条/走线                : F2     //感觉 没必要               Ctrl + W
//过孔                     : F3     //感觉 没必要               放置(P) -> 过孔(V)
在矩形区域排列             : F5     //有必要 (常用)
//铺铜                     : F4     //铺铜不常用, 感觉 没必要,  P+G(铺铜(G) )
//线接触到的对象 / 触线(线选): 2    //没必要
//区域内部             (框选): 3    //没必要

//排列                    自定义快捷键        说明
Ctrl + Shift + L: 靠左排列  Num4 (小键盘)   (排列多个选中的元件) (工具第5个 -> 靠右排列(R) )
Ctrl + Shift + R: 靠右排列  Num6            (排列多个选中的元件)
Ctrl + Shift + T: 靠上排列  Num8            (排列多个选中的元件)
Ctrl + Shift + B: 靠下排列  Num2            (排列多个选中的元件)
Ctrl + Shift + H: 水平分布  Num7            (排列多个选中的元件) (工具第5个 -> 水平分布(D) )
Ctrl + Shift + V: 垂直分布  Num9            (排列多个选中的元件) (工具第5个 -> 垂直分布(S) )

器件位号排列: Num5
交互式差分对布线(差分线)         : Alt + F2   //U + I
//删除网络                       : Alt + Q    //感觉 没必要,  U+U+C
//(选择)连接的铜皮               : Ctrl + H   //(默认就是这命令)
//运行DRC                        : TDR -> TD  //没必要
//规则                           : DR         //(默认就是这命令)
//类(Class)                      : DC         //(默认就是这命令)
//显示/隐藏 连接,  显示/隐藏 跳线: N
//移动                           : M (默认是MM)
//选择                           : S (默认是MS?)
//单位切换                       : Q (默认就是这命令)
//单层显示                       : Shift + S (默认就是这命令)
切换抓取    : Shift + E
多根走线    : TTM
//(走线时)忽略障碍物             : Shift + R     //(默认就是这命令)
//T + C + 点击元件               : 交叉探针(C). 点击后, 左侧原理图跳转对应元件.











